/*********************************************************************
	Rhapsody	: 7.5 
	Login		: KBE
	Component	: DefaultComponent 
	Configuration 	: CodeConfig
	Model Element	: SocketReactorImplementation
//!	Generated Date	: Wed, 19, Sep 2012  
	File Path	: DefaultComponent\CodeConfig\SocketReactorImplementation.h
*********************************************************************/

#ifndef SocketReactorImplementation_H
#define SocketReactorImplementation_H

//#[ ignore
#ifdef _MSC_VER
// disable Microsoft compiler warning (debug information truncated)
#pragma warning(disable: 4786)
#endif
//#]

//## auto_generated
#include <oxf\oxf.h>
//## auto_generated
#include "Default.h"
//## class SocketReactorImplementation
#include "Reactor.h"
//## auto_generated
#include <string>
//## auto_generated
#include <algorithm>
//## auto_generated
#include "SOCK_WrapperFacade.h"
//## package Default

//## class SocketReactorImplementation
class SocketReactorImplementation : public Reactor {
    ////    Friends    ////
    
    ////    Constructors and destructors    ////
    
public :

    //## operation SocketReactorImplementation()
    SocketReactorImplementation();
    
    ////    Operations    ////
    
    //## operation handleEvents(int)
    void handleEvents(int time = 0);
    
    ////    Additional operations    ////
    
    ////    Relations and components    ////

private :

    //## operation Select(int)
    void Select(int timeout = -1);
    
    // Set of sockets for which a given status is requested
    FD_SET readfds;		//## attribute readfds
    
    FD_SET writefds;		//## attribute writefds
    
    FD_SET exceptfds;		//## attribute exceptfds

protected :

    //## operation addHandle(HANDLE,Event_Type)
    virtual void addHandle(HANDLE handle, const Event_Type& type);

private :

    //## auto_generated
    FD_SET getExceptfds() const;
    
    //## auto_generated
    void setExceptfds(FD_SET p_exceptfds);
    
    //## auto_generated
    FD_SET getReadfds() const;
    
    //## auto_generated
    void setReadfds(FD_SET p_readfds);
    
    //## auto_generated
    FD_SET getWritefds() const;
    
    //## auto_generated
    void setWritefds(FD_SET p_writefds);

public :

    //## operation ~SocketReactorImplementation()
    ~SocketReactorImplementation();

private :

    //## auto_generated
    HANDLE* getHandles() const;
    
    //## auto_generated
    void setHandles(HANDLE* p_handles);
    
    //## auto_generated
    int getNumHandles() const;
    
    //## auto_generated
    void setNumHandles(int p_numHandles);

protected :

    HANDLE* handles;		//## attribute handles
    
    int numHandles;		//## attribute numHandles
};

#endif
/*********************************************************************
	File Path	: DefaultComponent\CodeConfig\SocketReactorImplementation.h
*********************************************************************/
